package cn.yh.st.core.dataSource;

public class HandleDataSource {

	/** 使用ThreadLocal记录当前线程的数据源key */
	public static final ThreadLocal<String> holder = new ThreadLocal<String>();
	/** 写库对应的数据源key */
	public static final String MASTER = "master";
	/** 读库对应的数据源key */
	public static final String SLAVE = "slave";

	/**
	 * 设置数据源的key
	 * 
	 * @param key
	 *            数据源的key值
	 */
	public static void putDataSourceKey(String key) {
		holder.set(key);
	}

	/**
	 * 获取数据源key
	 * 
	 * @return 获取的key
	 */
	public static String getDataSourceKey() {
		return holder.get();
	}

	/**
	 * 清除
	 */
	public static void remove() {
		holder.remove();
	};

	/**
	 * 标记写库
	 */
	public static void markMaster() {
		putDataSourceKey(MASTER);
	}

	/**
	 * 标记读库
	 */
	public static void markSlave() {
		putDataSourceKey(SLAVE);
	}

}
